<template>
  <div class="father">
    <h3>父组件</h3>
    <div class="content">
      <!-- 具名插槽：自定义组件里面可以在组件标签里面定义普通标签，然后在自定义组件里面使用插槽就可以显示对应的标签内容 -->
      <Category>
        <!-- v-slot可以放到template身上，不能放到普通标签上 -->
        <template v-slot:s2>
          <ul>
            <li v-for="g in games" :key="g.id">{{ g.name }}</li>
          </ul>
        </template>
        <template v-slot:s1>
          <h2>热门游戏列表</h2>
        </template>
      </Category>

      <!-- 具名插槽：自定义组件里面可以在组件标签里面定义普通标签，然后在自定义组件里面使用插槽就可以显示对应的标签内容 -->
      <Category>
        <template v-slot:s2>
          <img :src="imgUrl" alt="" />
        </template>
        <template v-slot:s1>
          <h2>今日美食城市</h2>
        </template>
      </Category>

      <!-- 具名插槽：自定义组件里面可以在组件标签里面定义普通标签，然后在自定义组件里面使用插槽就可以显示对应的标签内容 -->
      <Category>
        <!-- 其中#号是v-slot的缩写形式，日常建议使用#号 -->
        <template #s2>
          <video video :src="videoUrl" controls></video>
        </template>
        <template #s1>
          <h2>今日影视推荐</h2>
        </template>
      </Category>
    </div>
  </div>
</template>

<script setup lang="ts" name="Father">
import Category from './Category.vue'
import { reactive, ref } from 'vue'

// 数据
let games = reactive([
  { id: 'asgytdfats01', name: '英雄联盟' },
  { id: 'asgytdfats02', name: '王者农药' },
  { id: 'asgytdfats03', name: '红色警戒' },
  { id: 'asgytdfats04', name: '斗罗大陆' },
])
let imgUrl = ref('https://z1.ax1x.com/2023/11/19/piNxLo4.jpg')
let videoUrl = ref('http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4')
</script>

<style scoped>
.father {
  background-color: rgb(165, 164, 164);
  padding: 20px;
  border-radius: 10px;
}
.content {
  display: flex;
  justify-content: space-evenly;
}
img,
video {
  width: 100%;
}
h2 {
  background-color: orange;
  text-align: center;
  font-size: 20px;
  font-weight: 800;
}
</style>
